package test;

//Universidad del Valle de Guatemala
//Algoritmos y Base de Datos
//Juan Fernando Moraflores Cifuentes, 12938
//Carlos Sagastume, 12113
//Rodimiro Castañeda, 12122

//imprtamos las librerias necesarias
import rodilock.lock;//la clase dle package
import static org.junit.Assert.*;//libreria de metodos assert
import org.junit.*;//libreria que contiene las anotaciones


public class lockJUnitTest{
   
    private lock Prueba = new lock();//instanciamos variable de clase lock
    int [] varprueba = {5, 4, 6, 7};//valor de prueba
    int [] arrprueba = {7, 8, 0, 6};//valor de prueba
    int [] defprueba = {9, 0, 21, 0};//valor de prueba (default)
    
    String text = "Nueva clave: " + varprueba;//valor de prueba
    String text2 = "Nueva clave: " + arrprueba;//valor de prueba
    String text3 = "Nueva clave: " + defprueba;//valor de prueba
    
    @Before//anotacion: indica lo que se tiene que hacer antes de las pruebas
    public void setUp(){
        
        Prueba.setPass(varprueba);//prueba 1 de setPass (lock)
        Prueba.setPass(arrprueba);//prueba 2 de setPass (lock)
        Prueba.setPass(defprueba);//prueba 3 de setPass (lock)
        Prueba.setDefau(varprueba);//prueba 1 de setDefau (lock)
        Prueba.setDefau(arrprueba);//prueba 2 de setDefau (lock)
        Prueba.setDefau(defprueba);//prueba 3 de setDefau (lock)
    }
    
    @Test//anotacion de pruebas
    public void testlock(){
         
        //assertArrayEquals(); Puede usarse este tambien
        
        //pruebas de Press()
        assertSame(false, Prueba.Press());//prueba para verificar si el resultadfo de Press() es false
        assertNotSame(false, Prueba.Press());//prueba para verificar si el resultado de Press() no es false
        assertSame(true, Prueba.Press());//prueba para verificar si el resultado de Press() es true
        assertNotSame(true, Prueba.Press());//prueba para verificar si el resultado de Press() no es true
        
        //pruebas de Reset()
        assertEquals(text, Prueba.Reset());//prueba para comparar valor con resultado de Reset()
        assertEquals(text2, Prueba.Reset());//prueba para comparar valor 2 con resultado de Reset()
        assertEquals(text3, Prueba.Reset());//prueba para comparar valor 3 con resultado de Reset()
        
        //assertSame(Prueba.getPass(), Prueba.getDefau());
        //assertNotSame(Prueba.getPass(), Prueba.getDefau());
    }
}

